#include<iostream>
#include<climits>                  // 包含所需的整形类型最大值，最小值等的宏定义
#define ZERO 0

// 系统不同，编译器不同，整形所占用的位数不同
using std::cout;
using std::endl;

int main(){
    // -std=c++11,变量的初始化,
    // g++ .\main_2.cpp -o main2 -std=c++11
    int num = {10};
    int num2{};    // 0
    cout<<sizeof(int)<<endl;        // 4 byte
    short n_short;
    cout<<sizeof n_short<<endl;     // 2 byte
    cout<<"INT_MAX="<<INT_MAX<<endl;
    cout<<"CHAR_MIN="<<CHAR_MIN<<endl;
    unsigned short us_min = {ZERO};
    short s_min = {SHRT_MIN};
    short s_max = {SHRT_MAX};
    
    cout<<"us_min="<<us_min<<"\tus_min-1="<<--us_min<<endl;
    cout<<"s_min="<<s_min<<"\ts_min-1="<<--s_min<<endl;    // 1000 0000 0000 0000 -> 0111 1111 1111 1111
    cout<<"s_max="<<s_max<<"\ts_max+1="<<++s_max<<endl;

    return 0;
}